www.gusucode.com > 基于VBLAST-OFDM的MATLAB SIMULATION,图形化界面,并且给出了各仿真图 > 基于VBLAST-OFDM的MATLAB SIMULATION,图形化界面,并且给出了各仿真图/vblast-ofdm simulation/input_options.m

    function SimulationParameters = input_options

% number of FFT points
fftsixtyfour = get(findobj('Tag', 'FFTsixtyfour'),'Value');
if fftsixtyfour==1
    FFTPoints=64;
end
fftonetwoeight = get(findobj('Tag', 'FFTonetwoeight'),'Value');
if fftonetwoeight==1
    FFTPoints=128;
end
ffttwofivesix = get(findobj('Tag', 'FFTtwofivesix'),'Value');
if ffttwofivesix==1
    FFTPoints=256;
end
fftfiveonetwo = get(findobj('Tag', 'FFTfiveonetwo'),'Value');
if fftfiveonetwo==1
    FFTPoints=512;
end

% convolutional code options
conv_code_rate = get(findobj('Tag', 'ConvCodeRate'),'String');
conv_code_rate = conv_code_rate(get(findobj('Tag', 'ConvCodeRate'),'Value'),:);


%zero padding
zeropad=get(findobj('Tag', 'ZeroPad'),'Value');

% data carriers option
DataCarriers = eval(get(findobj('Tag', 'DataCarriers'),'String'));
if zeropad~=1
    DataCarriers=FFTPoints;
end

if DataCarriers>FFTPoints
    uiwait(errordlg('Number of data carriers exceeds FFT size.','Invalid Input','Modal'));
end

% Interleaving
InterleavingBits = get(findobj('Tag', 'InterleavingBits'),'Value');

% ModulationType
ModulationType = get(findobj('Tag', 'ModulationType'),'String');
ModulationType = ModulationType(get(findobj('Tag', 'ModulationType'),'Value'),:);

%channel estimation (LSE)
channel_estimation_lse = get(findobj('Tag', 'ChannelEstimation_LSE'),'Value');

%channel estimation (FFT)
channel_estimation_fft = get(findobj('Tag', 'ChannelEstimation_FFT'),'Value');

% Tx Diversity options
 TwoTxAntennas= get(findobj('Tag', 'MIMO_TwoTxAntennas'),'Value');
if TwoTxAntennas==1
    TransmitDiversity=2;
end
% Tx Diversity options
FourTxAntennas= get(findobj('Tag', 'MIMO_FourTxAntennas'),'Value');
if FourTxAntennas==1
    TransmitDiversity=4;
end
if TwoTxAntennas==0 & FourTxAntennas==0
    TransmitDiversity=0;
end

% Rx Diversity
TwoRxAntennas = get(findobj('Tag', 'MIMO_TwoRxAntennas'),'Value');
if TwoRxAntennas==1
    ReceiveDiversity=2;
end
% Rx Diversity
FourRxAntennas = get(findobj('Tag', 'MIMO_FourRxAntennas'),'Value');
if FourRxAntennas==1
    ReceiveDiversity=4;
end

if TwoRxAntennas==0 & FourRxAntennas==0 
    ReceiveDiversity=0;
end

% Channel models
if get(findobj('Tag', 'AWGN'),'Value')
   ChannelModel = 'AWGN';
elseif get(findobj('Tag', 'MaxDelaySpread'),'Value')
   ChannelModel = 'Rayleigh';
elseif get(findobj('Tag','Rician'),'Value')
   ChannelModel = 'Rician';
end
TimeMaxDelay = eval(get(findobj('Tag', 'TimeMaxDelay'),'String'));
kfactor=eval(get(findobj('Tag','kfactor'),'String'));

%Packets per run options
SimulationPackets = eval(get(findobj('Tag', 'SimulationPackets'),'String'));

% No. of Tx. Antennas
Tx. Antennas = eval(get(findobj('Tag', 'MIMO_Tx. Antennas'),'String'));

% No. of Rx. Antennas
Rx. Antennas = eval(get(findobj('Tag', 'MIMO_Rx. Antennas'),'String'));

% OFDM-MIMO
vblast = get(findobj('Tag', 'VBLAST'),'Value');
if vblast==1
    TransmitDiversity=1;
    ReceiveDiversity=1;
end

%Save file
savefile=get(findobj('Tag', 'Savefile'),'Value');
if savefile==1
    uiwait(msgbox('Please enter the file name. The file will be saved in the current directory. Press "OK" to continue. Otherwise press "CNTL + C" to exit the program','File Path','modal'));
end

filename = get(findobj('Tag', 'FileName'),'String');

str1=filename;
if isempty(str1) & savefile==1
uiwait(errordlg('Enter file name!! Press "CNTL + C" to exit the program.','Invalid Input','Modal'));
end



SimulationParameters = struct('FFTPoints', FFTPoints, ...
   'ConvCodeRate', conv_code_rate, ...
   'ZeroPad', zeropad, ... 
   'DataCarriers', DataCarriers, ...
   'InterleavingBits', InterleavingBits, ...
   'ModulationType', ModulationType,...
   'TxDiv', TransmitDiversity, ...
   'RxDiv', ReceiveDiversity, ...
   'ChannelModel', ChannelModel, ...
   'TimeMaxDelay', TimeMaxDelay, ...
   'kfactor',kfactor, ...
   'SNR', (0:2:30),...
   'ChannelEstimation_LSE', channel_estimation_lse, ...
   'ChannelEstimation_FFT', channel_estimation_fft, ...
   'SimulationPackets', SimulationPackets,...
   'M',Tx. Antennas,...
   'N',Rx. Antennas,...
   'VBLAST',vblast,...
   'Savefile',savefile,...
   'FileName',filename);